/*
 * @Author: deng-chao
 * @Description: 系统配置信息
 */


// 初始状态
const state = {
	// 屏幕状态览尺寸
	menuInfo: false,
};

// 计算属性
const getters = {
	getMenuInfo: (state) => state.menuInfo ? JSON.parse(state.menuInfo) : false,
};
// 同步
const mutations = {
	SET_MENU_INFO(state, data) {
		state.menuInfo = data;
	},
};
// 异步
const actions = {
	// 获取屏幕系统尺寸
	async GET_MENU_INFO({
		commit
	}, data) {
		await new Promise(async (resolve, reject) => {
			try {

				let result = await uni.getSystemInfo()
				// 获取手机系统的状态栏高度（不同手机的状态栏高度不同）  （ 不要使用uni-app官方文档的var(--status-bar-height) 官方这个是固定的20px  不对的 ）
				// console.log('当前手机的状态栏高度',result.statusBarHeight)
				console.log('当前手机的信息',result)
				let statusBarHeight = result.statusBarHeight + 'px'

				// 获取右侧胶囊的信息 单位px
				const menuButtonInfo = uni.getMenuButtonBoundingClientRect()
				//bottom: 胶囊底部距离屏幕顶部的距离
				//height: 胶囊高度
				//left:   胶囊左侧距离屏幕左侧的距离
				//right:  胶囊右侧距离屏幕左侧的距离
				//top:    胶囊顶部距离屏幕顶部的距离
				//width:  胶囊宽度
				// console.log(menuButtonInfo.width, menuButtonInfo.height, menuButtonInfo.top)
				// console.log('计算胶囊右侧距离屏幕右边距离', result.screenWidth - menuButtonInfo.right)
				let menuWidth = menuButtonInfo.width + 'px'
				let menuHeight = menuButtonInfo.height + 'px'
				let menuBorderRadius = menuButtonInfo.height / 2 + 'px'
				let menuRight = result.screenWidth - menuButtonInfo.right + 'px'
				let menuTop = menuButtonInfo.top + 'px'
				let contentTop = result.statusBarHeight + 44 + 'px'

				let menuInfo = {
					statusBarHeight: statusBarHeight, //状态栏高度----用来给自定义导航条页面的顶部导航条设计padding-top使用：目的留出系统的状态栏区域
					menuWidth: menuWidth, //右侧的胶囊宽度--用来给自定义导航条页面的左侧胶囊设置使用
					menuHeight: menuHeight, //右侧的胶囊高度--用来给自定义导航条页面的左侧胶囊设置使用
					menuBorderRadius: menuBorderRadius, //一半的圆角--用来给自定义导航条页面的左侧胶囊设置使用
					menuRight: menuRight, //右侧的胶囊距离右侧屏幕距离--用来给自定义导航条页面的左侧胶囊设置使用
					menuTop: menuTop, //右侧的胶囊顶部距离屏幕顶部的距离--用来给自定义导航条页面的左侧胶囊设置使用
					contentTop: contentTop, //内容区距离页面最上方的高度--用来给自定义导航条页面的内容区定位距离使用
					windowHeight:result.windowHeight,//屏幕高度
					windowWidth:result.windowWidth,//屏幕宽度
					devicePixelRatio:result.devicePixelRatio,//屏幕比例-渲染比例
				}
				console.log(menuInfo)
				commit('SET_MENU_INFO', JSON.stringify(menuInfo));

				return resolve(menuInfo)
			} catch (e) {
				console.error(e);
				return reject(e)
			}
		})

	},

};
export default {
	namespaced: true,
	state,
	actions,
	getters,
	mutations,
};